#pragma once
#include <string>
#define numStats 11

#define Milisec 0.001
#define Microsec (0.001*Milisec)
#define RT_HIT 0.1
#define RT_MISS 1

#define OFFSET_DIFF 7680
#define SEQ_TIME_DIFF 15

#define CacheSearchDelay (10*Microsec)

#define SATAOverhead 0.008
#define SATAReadRate 50
#define SATAWriteRate 50

#define FCOverhead 0.004
#define FCReadRate 60
#define FCWriteRate 60

#define SSDOverhead 0.0001
#define SSDReadRate 160
#define SSDWriteRate 120

#define FlashAlignment 1024
#define KB 1024
#define MB (1024*KB)
#define GB (1024*MB)
#define EXTENT_SIZE (3.75*MB)

#define DeallocateTime 1

// math macros
#define ABS(x) ((x < 0) ? -x : x)
#define MAX(x, y) ((x < y) ? y : x)
#define MIN(x, y) ((x > y) ? y : x)

float round(double val, int digits);
void createDirectory(std::string directory);
int hexaToInt(std::string shex);